package com.mfl.mapper;

import com.github.pagehelper.Page;
import com.mfl.pojo.dto.TestCategoryPageQueryDTO;
import com.mfl.pojo.entity.TestCategory;
import com.mfl.pojo.vo.TestCategoryPageQueryVO;
import com.mfl.pojo.vo.TestCategoryVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface TestCategoryMapper {
    /**
     * 根据testName查询测试分类
     * @param testName
     * @return
     */
    @Select("select * from test_category where test_name = #{testName}")
    TestCategory getByTestName(String testName);

    /**
     * 新增测试分类
     * @param build
     */
    void insert(TestCategory build);

    /**
     * 分页查询测试分类
     * @param testCategoryPageQueryDTO
     * @return
     */
    Page<TestCategoryPageQueryVO> pageQuery(TestCategoryPageQueryDTO testCategoryPageQueryDTO);

    /**
     * 修改测试分类状态
     * @param status
     * @param id
     */
    @Update("update test_category set status = #{status} where id = #{id}")
    void updateStatus(int status, Integer id);

    /**
     * 根据id批量删除测试分类
     * @param ids
     */
    void deleteByIds(List<Integer> ids);

    /**
     * 根据id查询测试分类
     * @param id
     * @return
     */
    @Select("select * from test_category where id = #{id}")
    TestCategory getByTestCategoryId(Integer id);

    /**
     * 修改测试分类
     * @param testCategory
     */
    void update(TestCategory testCategory);

    /**
     * 查询所有测试分类
     * @return
     */
    @Select("select * from test_category where status = 1")
    List<TestCategoryVO> getAll();
}
